package battledo

import (
	"wails/schema/enums/battleenum"
)

// 子地图的实现，不会存在场景配置，因为子地图的属性应与主地图一致，例如场景配置，玩家，阵营等等
// 子地图只包含地图数据，包括地形，物件，单位，区域，点等地图信息
// @schema_export --ident=schema --json --config=场景配置
// @schema_go
// @schema_ts
// @alias 场景配置
type D场景配置 struct {
	// @alias 名称
	M名称 string `link:"名称"`

	// @alias 世界
	S世界 string `link:"世界"`

	// @alias 维度
	W维度 W维度 `alias:"维度"`

	// @alias 站位
	Z站位 battleenum.Z站位 `alias:"站位"`

	// 当站位为 单元格 时, 单位相对单元格的中心点的偏移量
	// @alias 站位偏移
	Z站位偏移 *S位置 `alias:"站位偏移"`

	// 半径少于该值的单位，将作为一个点参与区域搜索, 增强搜索效率
	// @alias 搜索的单位半径
	Q搜索的单位半径 float64 `alias:"搜索的单位半径"`

	// @alias 边界
	// （单位：格子）
	B边界 *S地形边界

	// @alias 地形类型
	D地形类型 battleenum.D地形类型 `alias:"地形类型"`

	// @alias 每米像素
	M每米像素 int16

	// 单元格边长，阻碍点尺寸 （米/格子）
	// 2D世界中通常为1,3D世界中根据现实世界的比例或世界实际需求进行设置
	// @alias 单元格边长
	D单元格边长 int16 `alias:"单元格边长"`

	// @alias 标旗
	B标旗 map[battleenum.C场景地形标旗]bool `alias:"标旗"`

	// 达到时间后，游戏结束
	// @alias 限制时间
	X限制时间 float64 `alias:"限制时间"`
}

type W维度 int

const (
	W维度_D2 W维度 = iota
	W维度_D3
)
